home *** CD-ROM | disk | FTP | other *** search
- /* Ouvre notre écran publique avec un shell dedans ...
- Note : cette exemple ne prend pas compte 2 écrans avec le même nom,
- ou d'autres bizarreries...
- WB 2.0
- Traduction : Olivier ANH (BUGSS) */
-
- OPT OSVERSION=37
-
- MODULE 'intuition/screens'
-
- ENUM OKAY,NOSCREEN,NOSIG
-
- PROC main() HANDLE
- DEF s=NIL,sig=-1,name
- IF (s:=OpenScreenTagList(0, /* ouvre notre écran publique */
- [SA_DEPTH,2,
- SA_DISPLAYID,$8000,
- SA_PUBNAME,name:='PublicShell',
- SA_TITLE,name,
- SA_PUBSIG,IF (sig:=AllocSignal(-1))=NIL THEN Raise(NOSIG) ELSE sig,
- SA_PUBTASK,NIL,
- 0,0]))=NIL THEN Raise(NOSCREEN)
- PubScreenStatus(s,0) /* le rend accessible */
- SetDefaultPubScreen(name)
- SetPubScreenModes(SHANGHAI)
- Execute('NewShell WINDOW CON:0/0/640/256/bla/NOBORDER/BACKDROP',NIL,NIL)
- /* d'autre applications peuvent utiliser notre écran aussi
- si on veut juste notre shell, on le rend privée de nouveau */
- Wait(Shl(1,sig)) /* attend que toutes les fenêtre soient fermées */
- SetDefaultPubScreen(NIL) /* le workbench est de nouveau par défaut */
- Raise(OKAY)
- EXCEPT
- IF s THEN CloseS(s)
- IF sig>=0 THEN FreeSignal(sig)
- IF exception=NOSCREEN
- WriteF('Ne peut ouvrir l''écran !\n')
- ELSEIF exception=NOSIG
- WriteF('Pas de signal possible !\n')
- ENDIF
- ENDPROC
-